﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Web.UI.WebControls;
//using System.Web.UI;
//using System.ComponentModel;
//using System.Collections.Specialized;
//namespace TerryBlog.Control
//{
//    public class ComboBox:DataBoundControl
//    {
    
//    #region property


//        #region controlCssClass
//        [Description("The CSS class to use when the ComboBox is disabled."), Category("Appearance"), DefaultValue("")]
//        public string DisabledCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["DisabledCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["DisabledCssClass"] = value;
//            }
//        }

//        [DefaultValue(""), Category("Appearance"), Description("The CSS class to use for the combobox when it's focused.")]
//        public string FocusedCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["FocusedCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["FocusedCssClass"] = value;
//            }
//        }

//        [Category("Appearance"), DefaultValue(""), Description("The CSS class to use for the combobox, on hover.")]
//        public string HoverCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["HoverCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["HoverCssClass"] = value;
//            }
//        }
        
//        #endregion

//        [Category("Appearance"), DefaultValue(""), Description("The CSS class to use for disabled items.")]
//        public string DisabledItemCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["DisabledItemCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["DisabledItemCssClass"] = value;
//            }
//        }



//        //[Description("Content for the dropdown."), Category("Layout"), DefaultValue((string)null)]
//        //public ComboBoxContent DropDownContent
//        //{
//        //    get
//        //    {
//        //        return this._dropDownContent;
//        //    }
//        //    set
//        //    {
//        //        if (this._dropDownContent != null)
//        //        {
//        //            this.Controls.Remove(this._dropDownContent);
//        //        }
//        //        this._dropDownContent = value;
//        //        this.Controls.Add(this._dropDownContent);
//        //    }
//        //}

//        [Category("Appearance"), Description("The CSS class to use for the dropdown."), DefaultValue("")]
//        public string DropDownCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["DropDownCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["DropDownCssClass"] = value;
//            }
//        }

//        [DefaultValue((string)null), Category("Layout"), Description("Footer content for the dropdown.")]
//        public ComboBoxContent DropDownFooter
//        {
//            get
//            {
//                return this._dropDownFooter;
//            }
//            set
//            {
//                if (this._dropDownFooter != null)
//                {
//                    this.Controls.Remove(this._dropDownFooter);
//                }
//                this._dropDownFooter = value;
//                this.Controls.Add(this._dropDownFooter);
//            }
//        }

//        //[Description("Header content for the dropdown."), DefaultValue((string)null), Category("Layout")]
//        //public ComboBoxContent DropDownHeader
//        //{
//        //    get
//        //    {
//        //        return this._dropDownHeader;
//        //    }
//        //    set
//        //    {
//        //        if (this._dropDownHeader != null)
//        //        {
//        //            this.Controls.Remove(this._dropDownHeader);
//        //        }
//        //        this._dropDownHeader = value;
//        //        this.Controls.Add(this._dropDownHeader);
//        //    }
//        //}

//        [DefaultValue(0), Category("Layout"), Description("The height of the dropdown, in pixels.")]
//        public int DropDownHeight
//        {
//            get
//            {
//                object obj = this.ViewState["DropDownHeight"];
//                return ((obj == null) ? 0 : ((int)obj));
//            }
//            set
//            {
//                this.ViewState["DropDownHeight"] = value;
//            }
//        }

//        [Description("The height of the dropdown, in the number of items."), Category("Layout"), DefaultValue(10)]
//        public int DropDownPageSize
//        {
//            get
//            {
//                object obj = this.ViewState["DropDownPageSize"];
//                return ((obj == null) ? 10 : ((int)obj));
//            }
//            set
//            {
//                this.ViewState["DropDownPageSize"] = value;
//            }
//        }

//        [Description("Whether to enable user resizing of the dropdown."), DefaultValue(0), Category("Behavior")]
//        public ComboBoxResizingMode DropDownResizingMode
//        {
//            get
//            {
//                object obj = this.ViewState["DropDownResizingMode"];
//                return ((obj == null) ? ComboBoxResizingMode.Off : ((ComboBoxResizingMode)obj));
//            }
//            set
//            {
//                this.ViewState["DropDownResizingMode"] = value;
//            }
//        }

//        [Description("The style of the visual feedback to provide while resizing the dropdown."), Category("Behavior"), DefaultValue(0)]
//        public ComboBoxResizingStyle DropDownResizingStyle
//        {
//            get
//            {
//                object obj = this.ViewState["DropDownResizingStyle"];
//                return ((obj == null) ? ComboBoxResizingStyle.Live : ((ComboBoxResizingStyle)obj));
//            }
//            set
//            {
//                this.ViewState["DropDownResizingStyle"] = value;
//            }
//        }

//        [Category("Layout"), DefaultValue(0), Description("The width of the dropdown, in pixels.")]
//        public int DropDownWidth
//        {
//            get
//            {
//                object obj = this.ViewState["DropDownWidth"];
//                return ((obj == null) ? 0 : ((int)obj));
//            }
//            set
//            {
//                this.ViewState["DropDownWidth"] = value;
//            }
//        }

//        #region DropImage

//        [DefaultValue(""), Description("The image to use for expanding the dropdown, on hover."), Category("Appearance")]
//        public string DropHoverImageUrl
//        {
//            get
//            {
//                object obj = this.ViewState["DropHoverImageUrl"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["DropHoverImageUrl"] = value;
//            }
//        }

//        [Category("Appearance"), DefaultValue(0), Description("The width of the drop image in pixels.")]
//        public int DropImageHeight
//        {
//            get
//            {
//                object obj = this.ViewState["DropImageHeight"];
//                return ((obj == null) ? 0 : ((int)obj));
//            }
//            set
//            {
//                this.ViewState["DropImageHeight"] = value;
//            }
//        }

//        [Category("Appearance"), Description("The image to use for expanding the dropdown, on mouse down."), DefaultValue("")]
//        public string DropActiveImageUrl
//        {
//            get
//            {
//                object obj = this.ViewState["DropActiveImageUrl"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["DropActiveImageUrl"] = value;
//            }
//        }

//        [DefaultValue(""), Category("Appearance"), Description("The image to use for expanding the dropdown.")]
//        public string DropImageUrl
//        {
//            get
//            {
//                object obj = this.ViewState["DropImageUrl"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["DropImageUrl"] = value;
//            }
//        }

//        [DefaultValue(0), Description("The width of the drop image in pixels."), Category("Appearance")]
//        public int DropImageWidth
//        {
//            get
//            {
//                object obj = this.ViewState["DropImageWidth"];
//                return ((obj == null) ? 0 : ((int)obj));
//            }
//            set
//            {
//                this.ViewState["DropImageWidth"] = value;
//            }
//        }
        
//        #endregion

//        [DefaultValue(0), Category("Layout"), Description("The direction of the dropdown expansion.")]
//        public ComboBoxExpandDirection ExpandDirection
//        {
//            get
//            {
//                object obj = this.ViewState["ExpandDirection"];
//                return ((obj == null) ? ComboBoxExpandDirection.Down : ((ComboBoxExpandDirection)obj));
//            }
//            set
//            {
//                this.ViewState["ExpandDirection"] = value;
//            }
//        }

//        [Category("Animation"), Description("The duration (in milliseconds) of the dropdown expand animation."), DefaultValue(200)]
//        public int ExpandDuration
//        {
//            get
//            {
//                return Utils.ParseInt(this.ViewState["ExpandDuration"], 200);
//            }
//            set
//            {
//                this.ViewState["ExpandDuration"] = value.ToString();
//            }
//        }

//        [DefaultValue(2), Description("The slide type to use for the dropdown expand animation."), Category("Animation")]
//        public SlideType ExpandSlide
//        {
//            get
//            {
//                return Utils.ParseSlideType(this.ViewState["ExpandSlide"], SlideType.ExponentialDecelerate);
//            }
//            set
//            {
//                this.ViewState["ExpandSlide"] = value.ToString();
//            }
//        }

//        [Category("Data"), DefaultValue(10), Description("The number of callback filter result sets to cache.")]
//        public int FilterCacheSize
//        {
//            get
//            {
//                object obj = this.ViewState["FilterCacheSize"];
//                return ((obj == null) ? 10 : ((int)obj));
//            }
//            set
//            {
//                this.ViewState["FilterCacheSize"] = value;
//            }
//        }

//        [Description("The field to filter by, when filtering is required."), Category("Data"), DefaultValue("")]
//        public string FilterField
//        {
//            get
//            {
//                object obj = this.ViewState["FilterField"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["FilterField"] = value;
//            }
//        }



//        [Description("Whether the current request is a callback."), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), Browsable(false)]
//        public bool IsCallback
//        {
//            get
//            {
//                if (!this._isCallbackProcessed)
//                {
//                    if ((this.Context != null) && (this.Context.Request != null))
//                    {
//                        foreach (string text in this.Context.Request.Params.AllKeys)
//                        {
//                            if (((text != null) && text.StartsWith("Cart_")) && (text.IndexOf("_Callback") > 0))
//                            {
//                                this._isCallback = true;
//                                this._isCallbackProcessed = true;
//                                break;
//                            }
//                        }
//                    }
//                    this._isCallbackProcessed = true;
//                }
//                return this._isCallback;
//            }
//        }

//        #region Item
        
//        [DefaultValue(""), Category("Appearance"), Description("The ID of the client template to use for items.")]
//        public string ItemClientTemplateId
//        {
//            get
//            {
//                object obj = this.ViewState["ItemClientTemplateId"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["ItemClientTemplateId"] = value;
//            }
//        }

//        [Category("Data"), Description("The total number of items in the data set."), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
//        public int ItemCount
//        {
//            get
//            {
//                object obj = this.ViewState["ItemCount"];
//                return ((obj == null) ? this.Items.Count : ((int)obj));
//            }
//            set
//            {
//                this.ViewState["ItemCount"] = value;
//            }
//        }

        

//        [Category("Appearance"), Description("The CSS class to use for dropdown items."), DefaultValue("")]
//        public string ItemCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["ItemCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["ItemCssClass"] = value;
//            }
//        }

//        [Category("Appearance"), DefaultValue(""), Description("The CSS class to use for dropdown items on hover.")]
//        public string ItemHoverCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["ItemHoverCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["ItemHoverCssClass"] = value;
//            }
//        }
        
//        #endregion

//        [Description("The collection of ComboBox items."), PersistenceMode(PersistenceMode.InnerProperty), Category("Data"), Editor(typeof(ComboBoxItemCollectionEditor), typeof(UITypeEditor)), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
//        public ComboBoxItemCollection Items
//        {
//            get
//            {
//                if (this._items == null)
//                {
//                    this._items = new ComboBoxItemCollection();
//                }
//                return this._items;
//            }
//        }

//        [DefaultValue(true), Category("Behavior"), Description("Whether to enable keyboard navigation through items.")]
//        public bool KeyboardEnabled
//        {
//            get
//            {
//                object obj = this.ViewState["KeyboardEnabled"];
//                return ((obj == null) || ((bool)obj));
//            }
//            set
//            {
//                this.ViewState["KeyboardEnabled"] = value;
//            }
//        }

//        [Category("Appearance"), DefaultValue(""), Description("The ID of the client template to display to indicate that the record-set is reloading.")]
//        public string LoadingClientTemplateId
//        {
//            get
//            {
//                object obj = this.ViewState["LoadingClientTemplateId"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["LoadingClientTemplateId"] = value;
//            }
//        }

//        [Category("Appearance"), Description("The text to display to indicate that the record-set is reloading."), DefaultValue("")]
//        public string LoadingText
//        {
//            get
//            {
//                object obj = this.ViewState["LoadingText"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["LoadingText"] = value;
//            }
//        }

//        [Description("A list of images to preload.")]
//        private StringCollection PreloadImages
//        {
//            get
//            {
//                if (this._preloadImages == null)
//                {
//                    this._preloadImages = new StringCollection();
//                }
//                return this._preloadImages;
//            }
//        }

//        [Description("The running mode for this ComboBox."), DefaultValue(0), Category("Behavior")]
//        public ComboBoxRunningMode RunningMode
//        {
//            get
//            {
//                object obj = this.ViewState["RunningMode"];
//                return ((obj == null) ? ComboBoxRunningMode.Client : ((ComboBoxRunningMode)obj));
//            }
//            set
//            {
//                this.ViewState["RunningMode"] = value;
//            }
//        }
        
//        #region selecteditem

//        [DefaultValue(-1), Description("The index of the selected item."), Category("Data")]
//        public int SelectedIndex
//        {
//            get
//            {
//                object obj = this.ViewState["SelectedIndex"];
//                return ((obj == null) ? -1 : ((int)obj));
//            }
//            set
//            {
//                object obj = this.ViewState["SelectedIndex"];
//                this.ViewState["SelectedIndex"] = value;
//                if (this.SelectedItem != null)
//                {
//                    this.Text = this.SelectedItem.Text;
//                }
//                if ((this.SelectedIndexChanged != null) && (value != obj))
//                {
//                    this.OnSelectedIndexChanged(EventArgs.Empty);
//                }
//            }
//        }

//        [Category("Data"), DefaultValue((string)null), Description("The currently selected item."), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
//        public ComboBoxItem SelectedItem
//        {
//            get
//            {
//                int selectedIndex = this.SelectedIndex;
//                if ((selectedIndex >= 0) && (selectedIndex < this.Items.Count))
//                {
//                    return this.Items[selectedIndex];
//                }
//                return null;
//            }
//            set
//            {
//                if (value != null)
//                {
//                    int index = this.Items.IndexOf(value);
//                    if (index >= 0)
//                    {
//                        this.SelectedIndex = index;
//                    }
//                }
//                else
//                {
//                    this.SelectedIndex = -1;
//                }
//            }
//        }

//        [Description("The CSS class to use for for the selected item."), DefaultValue(""), Category("Appearance")]
//        public string SelectedItemCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["SelectedItemCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["SelectedItemCssClass"] = value;
//            }
//        }

//        [Description("The currently selected value."), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), DefaultValue((string)null), Category("Data")]
//        public string SelectedValue
//        {
//            get
//            {
//                ComboBoxItem selectedItem = this.SelectedItem;
//                if (selectedItem != null)
//                {
//                    return selectedItem.Value;
//                }
//                return null;
//            }
//            set
//            {
//                this.SelectedItem = this.Items.FindByValue(value);
//            }
//        }
        
//        #endregion

//        [DefaultValue(""), Category("Data"), Description("The text value of the input box.")]
//        public string Text
//        {
//            get
//            {
//                object obj = this.ViewState["Text"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["Text"] = value;
//            }
//        }

//        #region TextBox

//        [DefaultValue(""), Description("The ID of the client template to use for the text box."), Category("Appearance")]
//        public string TextBoxClientTemplateId
//        {
//            get
//            {
//                object obj = this.ViewState["TextBoxClientTemplateId"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["TextBoxClientTemplateId"] = value;
//            }
//        }

//        [Category("Appearance"), DefaultValue(""), Description("The CSS class to use for for the text box.")]
//        public string TextBoxCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["TextBoxCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["TextBoxCssClass"] = value;
//            }
//        }

//        [Category("Appearance"), DefaultValue(""), Description("The CSS class to use for for the text box when it is disabled.")]
//        public string TextBoxDisabledCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["TextBoxDisabledCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["TextBoxDisabledCssClass"] = value;
//            }
//        }

//        [Category("Behavior"), DefaultValue(true), Description("Whether to enable manual entry into the text box.")]
//        public bool TextBoxEnabled
//        {
//            get
//            {
//                object obj = this.ViewState["TextBoxEnabled"];
//                return ((obj == null) || ((bool)obj));
//            }
//            set
//            {
//                this.ViewState["TextBoxEnabled"] = value;
//            }
//        }

//        [Category("Appearance"), Description("The CSS class to use for for the text box when it's focused."), DefaultValue("")]
//        public string TextBoxFocusedCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["TextBoxFocusedCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["TextBoxFocusedCssClass"] = value;
//            }
//        }

//        [DefaultValue(""), Description("The CSS class to use for for the text box on hover."), Category("Appearance")]
//        public string TextBoxHoverCssClass
//        {
//            get
//            {
//                object obj = this.ViewState["TextBoxHoverCssClass"];
//                return ((obj == null) ? "" : ((string)obj));
//            }
//            set
//            {
//                this.ViewState["TextBoxHoverCssClass"] = value;
//            }
//        }
        
//#endregion
 
//#endregion
 

 


       
//        protected override void OnPreRender(EventArgs e)
//        {
//            base.OnPreRender(e);
//        }

//        protected override void RenderContents(HtmlTextWriter output)
//        {
//            output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
//            output.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
//            output.AddStyleAttribute("display", "inline-block");
//            output.RenderBeginTag(HtmlTextWriterTag.Table);
//            output.RenderBeginTag(HtmlTextWriterTag.Tr);
//                if (this.TextBoxCssClass != "")
//                {
//                    output.AddAttribute("class", this.TextBoxCssClass);
//                }
//            output.AddAttribute(HtmlTextWriterAttribute.Width, "100%");
//            output.AddAttribute(HtmlTextWriterAttribute.Id, this.ID + "_TextBox");
//            output.RenderBeginTag(HtmlTextWriterTag.Td);

//            output.AddAttribute(HtmlTextWriterAttribute.Id, this.ID + "_Input");
//            output.AddAttribute(HtmlTextWriterAttribute.Name, this.ID + "_Input");
//            output.AddAttribute("type", "text");
//            if (this.Text != "")
//            {
//                output.AddAttribute("value", this.Text);
//            }


//            base.RenderContents(output);
//        }
//    }
//}
